package cn.edu.ujn.food.service;

import cn.edu.ujn.food.entity.Usercoupon;
import cn.edu.ujn.food.dao.UsercouponDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;

import java.util.List;

@Service
public class UsercouponServiceImpl implements UsercouponService {
    @Autowired
    private UsercouponDao usercouponDao;



    @Override
    public Usercoupon queryById(Integer usercouId) {
        return this.usercouponDao.queryById(usercouId);
    }

    @Override
    public Page<Usercoupon> queryByPage(Usercoupon usercoupon, PageRequest pageRequest) {
        long total = this.usercouponDao.count(usercoupon);
        return new PageImpl<>(this.usercouponDao.queryAllByLimit(usercoupon, pageRequest), pageRequest, total);
    }
    @Override
    public Usercoupon update(Usercoupon usercoupon) {
        this.usercouponDao.update(usercoupon);
        return this.queryById(usercoupon.getUsercouId());
    }
    @Override
    public Usercoupon insert(Usercoupon usercoupon) {
        this.usercouponDao.insert(usercoupon);
        return usercoupon;
    }

    @Override
    public boolean deleteById(Integer usercouId) {
        return this.usercouponDao.deleteById(usercouId) > 0;
    }

    @Override
    public cn.edu.ujn.util.Page<Usercoupon> selectAll(Usercoupon usercoupon) {
        List<Usercoupon> usercoupons = usercouponDao.selectAll(usercoupon);
        cn.edu.ujn.util.Page<Usercoupon> page = new cn.edu.ujn.util.Page<>();
        page.setPage(usercoupon.getStart());
        page.setRows(usercoupons);
        page.setSize(usercoupon.getRows());
        page.setTotal(usercouponDao.selectCount());
        return page;
    }
}
